1. The Field of the Invention
The present invention relates generally to identifying the cause of performance deviations and other problems in high speed data transmission systems and components. More particularly, embodiments of the present invention relate to configurable diagnostic modules that can perform a variety of different diagnostic tests suitable for use with various different network protocols and configurations.
2. Background and Relevant Art
Computer and data communications networks continue to proliferate due to declining costs, increasing performance of computer and networking equipment, and increasing demand for communication bandwidth. Communications networks—including wide area networks (“WANs”), local area networks (“LANs”), and storage area networks (“SANS”)—allow increased productivity and utilization of distributed computers or stations through the sharing of resources, the transfer of voice and data, and the processing of voice, data and related information at the most efficient locations. Moreover, as organizations have recognized the economic benefits of using communications networks, network applications such as electronic mail, voice and data transfer, host access, and shared and distributed databases are increasingly used as a means to increase user productivity. This increased demand, together with the growing number of distributed computing resources, has resulted in a rapid expansion of the number of installed networks.
As the demand for networks has grown, network technology has developed to the point that many different physical configurations presently exist. Examples include Gigabit Ethernet (“GE”), 10 GE, Fiber Distributed Data Interface (“FDDI”), Fibre Channel (“FC”), Synchronous Optical Network (“SONET”) and InfiniBand networks. These networks, and others, typically conform to one of a variety of established standards, or protocols, which set forth rules that govern network access as well as communications between and among the network resources. Typically, such networks utilize different cabling systems, have different characteristic bandwidths and typically transmit data at different speeds. Network bandwidth, in particular, has been the driving consideration behind many advancements in the area of high speed communication systems, methods and devices.
For example, the ever-increasing demand for network bandwidth has resulted in the development of technology that increases the amount of data that can be pushed through a single channel on a network. Advancements in modulation techniques, coding algorithms and error correction have vastly increased the rates at which data can be transmitted across networks. For example, a few years ago, the highest rate that data could travel across a network was at about one Gigabit per second. This rate has increased to the point where data can travel across Ethernet and SONET networks at rates as high as 10 gigabits per second, or faster.
As communication networks have increased in size, speed and complexity however, they have become increasingly likely to develop a variety of problems that, in practice, have proven difficult to diagnose and resolve. Such problems are of particular concern in light of the continuing demand for high levels of network operational reliability and for increased network capacity.
The problems generally experienced in network communications can take a variety of forms and may occur as a result of a variety of different circumstances. Examples of circumstances, conditions and events that may give rise to network communication problems include the transmission of unnecessarily small frames of information, inefficient or incorrect routing of information, improper network configuration and superfluous network traffic, to name just a few. Such problems are aggravated by the fact that networks are continually changing and evolving due to growth, reconfiguration and introduction of new network topologies and protocols. Moreover, new network interconnection devices and software applications are constantly being introduced and implemented. Circumstances such as these highlight the need for effective, reliable, and flexible diagnostic mechanisms.
Consequently, as high speed data communications systems, processes and devices mature, many designs have increasingly focused on reliability and performance issues. Accordingly, a number of diagnostic devices and tests can be utilized to aid a network administrator in both identifying existing network conditions that are causing a network to deviate from expected performance and proactively identifying network conditions that may cause a network to deviate from expected performance in the future.
One device that is used to identifying network conditions is a protocol analyzer, also called a network analyzer. Generally, a protocol analyzer runs in the background of a network, capturing, examining and logging packet traffic. Protocol analyzers can, for example, be configured to watch for unusual IP addresses, time stamps and data packets, and most have a user interface for enabling the network administrator to have access to information representing the analysis performed by the protocol analyzers. Protocol analyzers are thus a fundamental and highly useful tool for testing and debugging various types of communications networks, including computing and computer storage networks.
A protocol analyzer operates by capturing selected portions of data from a data stream that is transmitted via the communications network. The captured information may then be analyzed in greater detail by the protocol analyzer to extract desired information. For example, data transmission faults or errors, or performance errors, known generally as problem conditions, may be diagnosed by examining the captured data that is related to the problem.
Another device that is used to identify network conditions is a generator. Generally, generators generate network traffic to simulate various network conditions. For example, a generator can generate network traffic that simulates a data stream between two nodes on a network. The behavior of the two nodes, as well as other nodes of the network, can be evaluated to determine how the network responds to the simulated data stream. Thus, a network administrator may be able to identify performance deviations and take appropriate measures to prevent the performance deviations from occurring in the future.
Another device that is used to identify network conditions is a bit error rate tester. Generally, bit error rate testers operate by transmitting a predetermined bit sequence onto the data transmission path, and then analyze the predetermined bit sequence when it returns to the bit error rate tester. Typically, such analyses involve comparing the received bit sequence to a copy of the bit sequence that was initially transmitted onto the data transmission path. This comparison permits errors within the sequence to be identified and counted. After the errors in the bit sequence are counted, that information is used to calculate an overall bit error rate. If the bit error rate is too high, the data transmission path and its physical layer should be inspected. Some protocol's specifications expect the bit error rate to be less than a specific value.
Another device that is used to identify network conditions is a jammer. Generally, jammers provide the ability to selectively alter channel data, including the introduction of errors into channel data paths. Thus, jammers permit monitoring of the response of the communications system to the altered data, and help determine whether the communications system is capable of responding without experiencing adverse effects in performance such as loss of data or network traffic interruption. For example, a network system designer can perform any one of a number of different diagnostic tests to make determinations such as whether a system responded appropriately to incomplete, misplaced or missing tasks or sequences, how misdirected or confusing frames are treated, and how misplaced ordered sets are treated.
Protocol analyzers, generators, bit error rate testers, and jammers (and possibly other devices that test for network conditions) can be implemented on printed circuit boards (often referred to as “cards” or “blades”) that are inserted into a computer system test chassis. Depending on the desired functionality, an administrator can insert a particular type of card into a computer system test chassis. For example, when an administrator desires to test a bit error rate for a network, the administrator can insert a bit error rate tester card into computer system test chassis. Subsequently, when the administrator desires to analyze network traffic, the administrator can remove the bit error rate test card from the computer system test chassis and insert a network analyzer card into the computer system test chassis.
Some computer system test chassis even include multiple card receptacles such that the computer system test chassis can receive a number of cards. Thus, an administrator may have some flexibility to simultaneously test a network for a variety of network conditions. For example, an administrator may include a generator card and a jammer card in a multi-receptacle computer system test chassis to simultaneously utilize both generator and jammer functionality. Unfortunately, as a network expands and/or is reconfigured, the requirements for testing the network can change. Expansion and/or reconfiguration of a network can result in an administrator having to, at least from time-to-time, remove and replace cards in a computer system test chassis. If the computer system test chassis lacks a sufficient number of receptacles, the administrator may be required to change cards with increased frequency or even obtain an additional test chassis.
There is always some chance that an administrator lacks a card for performing a particular diagnostic function. Thus, an administrator may be required to obtain a separate card for each desired diagnostic function, even if one or more diagnostic functions are performed infrequently. For example, to utilize jammer functionality even once a month, an administrator would still be required to use a jammer card. An administrator may also be required to obtain separate cards for each desired protocol, even if one or more protocols are used infrequently. For example, to diagnose a problem in a Fibre Channel network, the administrator would be required to use a Fibre Channel protocol analyzer and to diagnose a problem in a Gigabit Ethernet network, would be required to use a different Gigabit Ethernet protocol analyzer.
Also, when a card manufactured for a particular diagnostic function malfunctions, an administrator is typically required to purchase a replacement card. Further, there are limited, if any, mechanisms for modifying the functionality of a card. For example, it is typically quite difficult to alter a jammer card to perform the function of a bit error rate tester card. Therefore systems, methods, and computer program products for providing the functionality of a number of diagnostic devices and for several different protocols in a single card would be advantageous.